<?php

/**
 * 地区的DM.
 *
 * @author xiaoxia.xu <xiaoxia.xuxx@aliyun-inc.com>
 * @copyright ©2003-2103 phpwind.com
 * @license http://www.windframework.com
 *
 * @version $Id: WindidAreaDm.php 23673 2013-01-14 09:11:23Z jieyin $
 */
class WindidAreaDm extends PwBaseDm
{
    public $areaid;

    /**
     * 设置地区ID.
     *
     * @param int $areaid
     *
     * @return WindidAreaDm
     */
    public function setAreaid($areaid)
    {
        $this->areaid = intval($areaid);

        return $this;
    }

    /**
     * 设置地区名字.
     *
     * @param string $name
     *
     * @return WindidAreaDm
     */
    public function setName($name)
    {
        $this->_data['name'] = trim($name);

        return $this;
    }

    /**
     * 设置上级地区ID.
     *
     * @param int $parentid
     *
     * @return WindidAreaDm
     */
    public function setParentid($parentid)
    {
        $this->_data['parentid'] = intval($parentid);

        return $this;
    }

    /**
     * 路径-省-市-区.
     *
     * @param string $joinName
     *
     * @return WindidAreaDm
     */
    public function setJoinname($joinName)
    {
        $this->_data['joinname'] = $joinName;

        return $this;
    }

    /* (non-PHPdoc)
     * @see PwBaseDm::_beforeAdd()
     */
    protected function _beforeAdd()
    {
        if (!isset($this->_data['name']) || !$this->_data['name']) {
            return new WindidError(WindidError::FAIL);
        }
        $_tmp = str_replace(array('&', '"', "'", '<', '>', '\\', '/'), '', $this->_data['name']);
        if ($_tmp != $this->_data['name']) {
            return new WindidError(WindidError::FAIL);
        }

        return true;
    }

    /* (non-PHPdoc)
     * @see PwBaseDm::_beforeUpdate()
     */
    protected function _beforeUpdate()
    {
        if (!$this->areaid) {
            return new WindidError(WindidError::FAIL);
        }
        if (!isset($this->_data['name']) || !$this->_data['name']) {
            return new WindidError(-2);
        }
        $_tmp = str_replace(array('&', '"', "'", '<', '>', '\\', '/'), '', $this->_data['name']);
        if ($_tmp != $this->_data['name']) {
            return new WindidError(WindidError::FAIL);
        }

        return true;
    }
}
